/**
 * @description 定义common模块，进行导出
 */

// actions定义
const actions = {
  // 把处理后的数据提交到mutation中去进行数据更新，接收数据，所以就有两个形参
  tokenAct(_store, _data) {
    Promise.resolve().then(() => {
      // 为什么这里不需要加模块名字
      _store.commit('setToken', 'TOKEN - ' + _data)
    })
  }
}

export default {
  // 开启命名空间
  namespaced: true,

  // 四大核心配置
  state: {
    // 通用票据 -- 解决http无状态使用的一个凭证
    token: ''
  },

  getters: {
    // getter方法要获取到state的值，才能返回state值，所以方法必须有一个state形参
    getToken(_state) {
      return _state.token
    },
        // 暴露用户信息接口
        getUserInfo: _state => _state.userInfo
  },

  actions,

  mutations: {
    // 给state数据赋值，就需要接收数据，那么就需要两个形参
    setToken(_state, _token) {
      _state.token = _token
    },
    setUserInfo(_state, _user) {
      _state.userInfo = _user
    }
  }
}
